This program implements so-called "causal diagrams" that represent multi-person juggling patterns. The pattern is represented by a two-dimensional grid. Each row of letters represents one human juggler, who is assumed to have two hands. Time marches inexorably off to the right, with the hands alternating their throws in time. Two repeating units of the pattern are shown, with the second part "faded." The faded-out parts aren't manipulable, and are in fact just copies of the non-faded parts. A throw is represented by an arrow from the hand that throws to the hand that receives, always to the right (later in time). For more details about the notation, and about juggling in general, see The Veteran Neophyte in develop magazine issue 22. for implementation details, see the file PaperJuggling.h and the code itself.
Manipulating Throws
To create a throw, click on any hand that doesn't yet have a throw emanating from it. The program will find the first legal throw and create it. If you keep the mouse down, you can drag the throw wherever you like. It will "leap ahead" or "stick" to legal destinations, but will not stick where it can't go. If you release the mouse when the throw isn't "anchored," it will be removed. You can also remove a throw by holding down the option key while clicking it.
Manipulating Jugglers
You can rearrange the jugglers vertically by clicking and dragging on their label at the left. You can reverse the juggler's right and left hands by double clicking the label.